package cmm;

import java.io.*;

public interface ITaskContext extends Serializable, Cloneable{

	/**
	 * This method should return the type of the TaskContext
	 * 
	 * @return The type of the TaskContext
	 */
	public TaskType getType();
	
	/**
	 * This method overloads Object.clone(). 
	 * It should recursively clone the TaskContext, and return
	 * a clone of this TaskContext. The clone should not have any 
	 * references in common with the original instance.
	 * 
	 * @return The clone TaskContext
	 * @throws CloneNotSupportedException - Object cannot be cloned
	 */
	public TaskContext clone() throws CloneNotSupportedException;
}
